package Vista;

import java.awt.*;
import java.util.ArrayList;

import javax.swing.*;

import Controlador.*;

@SuppressWarnings("serial")
public class VistaOpciones extends JDialog {
	
	private Controlador controlador;
	private GridBagConstraints ubicacion;
	private JTextField campoNombre;
	private ArrayList<JButton> mapas;
	private ArrayList<JButton> niveles;
	
	
	public VistaOpciones(JFrame ventana){
		
	this.setTitle("OPCIONES DE JUEGO");
	this.setSize(400,180);

	this.setLayout(new GridBagLayout());
	this.setLocationRelativeTo(ventana);
	this.controlador = null;
	this.ubicacion = new GridBagConstraints();
	this.mapas = new ArrayList<JButton>();
	this.niveles = new ArrayList<JButton>();
	}
	
	public void configurarOpciones(Controlador controlador){
	
	this.controlador = controlador;
	JPanel panelNorte = new JPanel();
	panelNorte.setLayout(new FlowLayout());
	JLabel campoNombre = new JLabel();
	campoNombre.setText("Nombre:");
	panelNorte.add(campoNombre);
	JTextField unTexto = new JTextField(20);
	this.campoNombre = unTexto;
	panelNorte.add(unTexto);
	
	this.ubicacion.gridx = 0;
	this.ubicacion.gridy = 0;
	this.ubicacion.gridheight = 1;
	this.ubicacion.gridwidth = 4;
	this.add(panelNorte,ubicacion);

	
	
	JPanel panelDificultad = new JPanel();
	panelDificultad.setLayout(new FlowLayout());
	JLabel campoDificultad = new JLabel();
	campoDificultad.setText("Difultad:");
	JButton bFacil = new JButton("Facil");
	bFacil.addActionListener(new AccionElegirNivelFacil(this));
	this.niveles.add(bFacil);
	JButton bMedio = new JButton("Medio");
	bMedio.addActionListener(new AccionElegirNivelMedio(this));
	this.niveles.add(bMedio);
	JButton bDificil = new JButton("Dificil");
	bDificil.addActionListener(new AccionElegirNivelDificil(this));
	this.niveles.add(bDificil);
	panelDificultad.add(campoDificultad);
	panelDificultad.add(bFacil);
	panelDificultad.add(bMedio);
	panelDificultad.add(bDificil);
	
	this.ubicacion.gridx = 0;
	this.ubicacion.gridy = 1;
	this.ubicacion.gridheight = 1;
	this.ubicacion.gridwidth = 4;
	this.add(panelDificultad,ubicacion);

	
	JPanel panelTipoMapa = new JPanel();
	panelTipoMapa.setLayout(new FlowLayout());
	JLabel campoTipoMapa = new JLabel();
	campoTipoMapa.setText("Tipo de Mapa:");
	JButton bCosta = new JButton("Costa");
	bCosta.addActionListener(new AccionElegirMapaCosta(this));
	this.mapas.add(bCosta);
	JButton bLago = new JButton("Lago");
	bLago.addActionListener(new AccionElegirMapaLago(this));
	this.mapas.add(bLago);
	JButton bIslas = new JButton("Islas");
	bIslas.addActionListener(new AccionElegirMapaIslas(this));
	this.mapas.add(bIslas);
	panelTipoMapa.add(campoTipoMapa);
	panelTipoMapa.add(bCosta);
	panelTipoMapa.add(bLago);
	panelTipoMapa.add(bIslas);
	
	this.ubicacion.gridx = 0;
	this.ubicacion.gridy = 2;
	this.ubicacion.gridheight = 1;
	this.ubicacion.gridwidth = 4;
	this.add(panelTipoMapa,ubicacion);
	
	
	
	JPanel panelSur = new JPanel();
	panelSur.setLayout(new FlowLayout());
	JButton bOk = new JButton("OK");
	bOk.addActionListener(new ActionListenerIniciarJuego(this.controlador));
	JButton bCancel = new JButton("LIMPIAR");

	panelSur.add(bOk);
	panelSur.add(bCancel);
	
	this.ubicacion.gridx = 0;
	this.ubicacion.gridy = 3;
	this.ubicacion.gridheight = 1;
	this.ubicacion.gridwidth = 4;
	this.add(panelSur,ubicacion);

	}
	
	public String obtenerNombreIngresado(){
		return this.campoNombre.getText();
	}
	
	public Controlador obtenerControlador(){
		return this.controlador;
	}

	public void despintarBotonesMapas() {
		for(int i = 0; i<this.mapas.size();i++){
			this.mapas.get(i).setBackground(new JButton().getBackground());
		}
	}
	
	public void despintarBotonesNiveles() {
		for(int i = 0; i<this.niveles.size();i++){
			this.niveles.get(i).setBackground(new JButton().getBackground());
		}
	}
}
